//Given an integer n, return true if it is a power of three. Otherwise, return f
//alse. 
//
// An integer n is a power of three, if there exists an integer x such that n ==
// 3x. 
//
// 
// Example 1: 
//
// 
//Input: n = 27
//Output: true
// 
//
// Example 2: 
//
// 
//Input: n = 0
//Output: false
// 
//
// Example 3: 
//
// 
//Input: n = 9
//Output: true
// 
//
// 
// Constraints: 
//
// 
// -231 <= n <= 231 - 1 
// 
//
// 
//Follow up: Could you solve it without loops/recursion? Related Topics 递归 数学 
// 👍 243 👎 0


package leetcode.editor.cn;

//Java：Power of Three
public class P326PowerOfThree {
    public static void main(String[] args) {
        Solution solution = new P326PowerOfThree().new Solution();
        // TO TEST
    }

    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        //        public boolean isPowerOfThree(int n) {
//            if (n == 0) {
//                return false;
//            }
//            return PowerOfThree(n);
//        }
//        public boolean PowerOfThree(int n) {
//            if (n == 1) {
//                return true;
//            }
//            return n % 3 == 0 ? PowerOfThree(n / 3) : false;
//        }
        public boolean isPowerOfThree(int n) {
            if (n == 0) {
                return false;
            }
            while (n != 1) {
                if (n % 3 == 0) {
                    n = n / 3;
                } else {
                    return false;
                }
            }
            return true;
        }
    }
//leetcode submit region end(Prohibit modification and deletion)

}